package com.ywgt.system.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ywgt.system.pojo.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ywgt.system.vo.UserVO;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author yiping
 * @since 2021-01-15
 */
public interface UserService extends IService<User> {

    /**
     * 根据条件查询用户，并进行分页展示
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<User> findUserPage(Page<User> page,QueryWrapper<User> queryWrapper);

    /**
     * 添加用户
     * @param user
     */
    void addUser(User user);

    /**
     * 更新用户状态信息
     * @param user
     * @return
     */
    int updateUser(User user);

    /**
     * 根据用户名查询用户
     * @param username
     * @return
     */
    User getUserByUsername(String username);

    /**
     * 验证登录的用户名和密码
     * @param username 用户名
     * @param password 密码
     * @return 返回true登录成功 反之失败
     */
    boolean checkLogin(String username,String password);

    /**
     * 根据条件查询用户对象
     * @param pageNum 页码
     * @param pageSize 每页显示数量
     * @param userVO 构建的查询对象
     * @return 返回的分页对象
     */
    Page<User> findUserList(Long pageNum, Long pageSize, UserVO userVO);
}
